/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.comeval.logica;

import com.comeval.modelo.Laboratorio;
import com.comeval.persistencia.ILaboratorioDAO;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author LUISA
 */
@Stateless
public class LogicaLaboratorio implements LogicaLaboratorioLocal {

    @EJB
    private ILaboratorioDAO laboratorioDAO;
    
    @Override
    public void registrar(Laboratorio lab) throws Exception {
        if(lab==null){
            throw new Exception("El laboratorio no tiene información");
        }
        if(lab.getNitlaboratorio()==null || lab.getNitlaboratorio().equals("")){
            throw new Exception("El nit es obligatorio");
        }
        Laboratorio objLaboratorio=laboratorioDAO.consultarPorNit(lab.getNitlaboratorio());
        if(objLaboratorio!=null){
            throw new Exception("El laboratorio ya se encuentra registrado");
        }
        if(lab.getNombrelaboratorio()==null || lab.getNombrelaboratorio().equals("")){
            throw new Exception("El nombre es obligatorio");
        }
        laboratorioDAO.registrar(lab);
    }

    @Override
    public void modificar(Laboratorio lab) throws Exception {
        if(lab==null){
            throw new Exception("El laboratorio no tiene información");
        }
        if(lab.getNitlaboratorio()==null){
            throw new Exception("El nit es obligatorio");
        }
        Laboratorio objLaboratorio=laboratorioDAO.consultarPorNit(lab.getNitlaboratorio());
        if(objLaboratorio==null){
            throw new Exception("El laboratorio que desea modificar no se encuentra registrado en el sistema");
        }
        if(lab.getNombrelaboratorio()==null || lab.getNombrelaboratorio().equals("")){
            throw new Exception("El nombre es obligatorio");
        }
        laboratorioDAO.modificar(lab);
    }

    @Override
    public void eliminar(Laboratorio lab) throws Exception {
        Laboratorio objLaboratorio=laboratorioDAO.consultarPorNit(lab.getNitlaboratorio());
        if(objLaboratorio==null){
            throw new Exception("El laboratorio no se encuentra registrado");
        }
        laboratorioDAO.eliminar(objLaboratorio);
    }

    @Override
    public List<Laboratorio> consultar() throws Exception {
        return laboratorioDAO.consultar();
    }

    @Override
    public Laboratorio consultarPorNit(String nit) throws Exception {
        if(nit==null){
            throw new Exception("El laboratorio no se encuentra registrado");
        }
        return laboratorioDAO.consultarPorNit(nit);
    }

    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
}
